/*
 * File: rtGetInf.c
 *
 * MATLAB Coder version            : 2.7
 * C/C++ source code generated on  : 01-Nov-2016 11:33:29
 */

 /*
  * Abstract:
  *       MATLAB for code generation function to initialize non-finite, Inf and MinusInf
  */
#include "rtGetInf.h"
#define NumBitsPerChar	16U

  /* Function: rtGetInf ==================================================
   * Abstract:
   * Initialize rtInf needed by the generated code.
   * Inf is initialized as non-signaling. Assumes IEEE.
   */
real_T rtGetInf(void)
{
	size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
	real_T inf = 0.0;
	if (bitsPerReal == 32U) {
		inf = rtGetInfF();
	}
	else {
		uint16_T one = 1U;
		enum {
			LittleEndian,
			BigEndian
		} machByteOrder = (*((uint8_T *)&one) == 1U) ? LittleEndian : BigEndian;
		switch (machByteOrder) {
		case LittleEndian:
		{
			union {
				LittleEndianIEEEDouble bitVal;
				real_T fltVal;
			} tmpVal;

			tmpVal.bitVal.words.wordH = 0x7FF00000U;
			tmpVal.bitVal.words.wordL = 0x00000000U;
			inf = tmpVal.fltVal;
			break;
		}

		case BigEndian:
		{
			union {
				BigEndianIEEEDouble bitVal;
				real_T fltVal;
			} tmpVal;

			tmpVal.bitVal.words.wordH = 0x7FF00000U;
			tmpVal.bitVal.words.wordL = 0x00000000U;
			inf = tmpVal.fltVal;
			break;
		}
		}
	}

	return inf;
}

/* Function: rtGetInfF ==================================================
 * Abstract:
 * Initialize rtInfF needed by the generated code.
 * Inf is initialized as non-signaling. Assumes IEEE.
 */
real32_T rtGetInfF(void)
{
	IEEESingle infF;
	infF.wordL.wordLuint = 0x7F800000U;
	return infF.wordL.wordLreal;
}

/* Function: rtGetMinusInf ==================================================
 * Abstract:
 * Initialize rtMinusInf needed by the generated code.
 * Inf is initialized as non-signaling. Assumes IEEE.
 */
real_T rtGetMinusInf(void)
{
	size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar);
	real_T minf = 0.0;
	if (bitsPerReal == 32U) {
		minf = rtGetMinusInfF();
	}
	else {
		uint16_T one = 1U;
		enum {
			LittleEndian,
			BigEndian
		} machByteOrder = (*((uint8_T *)&one) == 1U) ? LittleEndian : BigEndian;
		switch (machByteOrder) {
		case LittleEndian:
		{
			union {
				LittleEndianIEEEDouble bitVal;
				real_T fltVal;
			} tmpVal;

			tmpVal.bitVal.words.wordH = 0xFFF00000U;
			tmpVal.bitVal.words.wordL = 0x00000000U;
			minf = tmpVal.fltVal;
			break;
		}

		case BigEndian:
		{
			union {
				BigEndianIEEEDouble bitVal;
				real_T fltVal;
			} tmpVal;

			tmpVal.bitVal.words.wordH = 0xFFF00000U;
			tmpVal.bitVal.words.wordL = 0x00000000U;
			minf = tmpVal.fltVal;
			break;
		}
		}
	}

	return minf;
}

/* Function: rtGetMinusInfF ==================================================
 * Abstract:
 * Initialize rtMinusInfF needed by the generated code.
 * Inf is initialized as non-signaling. Assumes IEEE.
 */
real32_T rtGetMinusInfF(void)
{
	IEEESingle minfF;
	minfF.wordL.wordLuint = 0xFF800000U;
	return minfF.wordL.wordLreal;
}

/*
 * File trailer for rtGetInf.c
 *
 * [EOF]
 */
